import { defHttp } from '/@/utils/http/axios';
import type { TechnologyTreeNode } from './TrendAnalysis.data';

enum Api {
  // 获取技术分类树（用于下拉树）- 使用 loadTreeRoot 接口（支持同步/异步）
  getTechnologyTree = '/analysis/genealogy/loadTreeRoot',
  // 查询技术申请趋势数据
  getTechnologyTrend = '/analysis/trend/getTechnologyTrend',
}

/**
 * 获取技术分类树形数据（用于 ApiTreeSelect 组件）
 * 使用 loadTreeRoot 接口，async=false 表示同步加载所有子节点
 * 返回 SelectTreeModel 格式：key, value, title, isLeaf, children
 * @param params 可选查询参数
 */
export const getTechnologyTreeApi = (params?: Recordable) => {
  return defHttp.get<TechnologyTreeNode[]>({ 
    url: Api.getTechnologyTree,
    params: {
      async: false,  // 🔑 同步加载所有数据
      pcode: '',     // 🔑 空字符串表示从根节点开始
      ...params,
    }
  });
};

/**
 * 获取技术申请趋势数据
 * @param params 查询参数
 */
export const getTechnologyTrend = (params: {
  technologyIds: string[];  // 技术分类ID列表
  startYear?: number;       // 开始年份，默认2010
  endYear?: number;         // 结束年份，默认当前年
}) => {
  return defHttp.post({ 
    url: Api.getTechnologyTrend,
    data: params,           // ✅ POST请求使用data而不是params
    timeout: 30000,         // 30秒超时
  });
};
